// 知识库管理 - 所有知识库数据都在这里统一管理
import type { Article, Category } from '../types/knowledge';

export const articleData: Article[] = [
  {
    id: 1,
    title: 'KZ-DevOps平台使用指南',
    content: '本文档详细介绍了KZ-DevOps平台的使用方法和最佳实践...',
    category: '使用指南',
    tags: ['DevOps', '平台', '使用'],
    author: '张三',
    status: '已发布',
    viewCount: 156,
    likeCount: 23,
    commentCount: 5,
    collectCount: 8,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-15',
    publishedAt: '2024-01-05',
    attachments: [],
    summary: 'KZ-DevOps平台的完整使用指南'
  },
  {
    id: 2,
    title: '项目管理模块开发规范',
    content: '本文档规定了项目管理模块的开发规范和代码标准...',
    category: '开发规范',
    tags: ['开发', '规范', '项目管理'],
    author: '李四',
    status: '已发布',
    viewCount: 89,
    likeCount: 12,
    commentCount: 3,
    collectCount: 5,
    createdAt: '2024-01-05',
    updatedAt: '2024-01-20',
    publishedAt: '2024-01-10',
    attachments: [],
    summary: '项目管理模块的开发规范和最佳实践'
  },
  {
    id: 3,
    title: '任务看板功能设计文档',
    content: '本文档详细描述了任务看板功能的设计思路和实现方案...',
    category: '设计文档',
    tags: ['设计', '看板', '任务管理'],
    author: '王五',
    status: '草稿',
    viewCount: 34,
    likeCount: 5,
    commentCount: 1,
    collectCount: 2,
    createdAt: '2024-01-10',
    updatedAt: '2024-01-25',
    attachments: [],
    summary: '任务看板功能的设计思路和实现方案'
  },
  {
    id: 4,
    title: '权限管理系统技术架构',
    content: '本文档介绍了权限管理系统的技术架构和实现原理...',
    category: '技术架构',
    tags: ['权限', '架构', 'RBAC'],
    author: '赵六',
    status: '已发布',
    viewCount: 67,
    likeCount: 15,
    commentCount: 4,
    collectCount: 6,
    createdAt: '2024-01-15',
    updatedAt: '2024-01-25',
    publishedAt: '2024-01-20',
    attachments: [],
    summary: '权限管理系统的技术架构和实现原理'
  },
  {
    id: 5,
    title: '系统部署和运维指南',
    content: '本文档提供了系统的部署流程和运维管理指南...',
    category: '运维指南',
    tags: ['部署', '运维', '管理'],
    author: '钱七',
    status: '已归档',
    viewCount: 45,
    likeCount: 8,
    commentCount: 2,
    collectCount: 3,
    createdAt: '2024-01-20',
    updatedAt: '2024-01-30',
    publishedAt: '2024-01-25',
    attachments: [],
    summary: '系统的部署流程和运维管理指南'
  }
];

// 生成更多测试数据
for (let i = 6; i <= 50; i++) {
  const categories = ['使用指南', '开发规范', '设计文档', '技术架构', '运维指南', '最佳实践', '故障排查'];
  const statuses: Array<'草稿' | '已发布' | '已归档'> = ['草稿', '已发布', '已归档'];
  const authors = ['张三', '李四', '王五', '赵六', '钱七'];
  const tagsList = [
    ['DevOps', '平台', '使用'],
    ['开发', '规范', '项目管理'],
    ['设计', '看板', '任务管理'],
    ['权限', '架构', 'RBAC'],
    ['部署', '运维', '管理'],
    ['最佳实践', '经验分享'],
    ['故障', '排查', '解决方案']
  ];
  
  articleData.push({
    id: i,
    title: `文章标题${i}`,
    content: `这是第${i}篇文章的详细内容...`,
    category: categories[Math.floor(Math.random() * categories.length)],
    tags: tagsList[Math.floor(Math.random() * tagsList.length)],
    author: authors[Math.floor(Math.random() * authors.length)],
    status: statuses[Math.floor(Math.random() * statuses.length)],
    viewCount: Math.floor(Math.random() * 200),
    likeCount: Math.floor(Math.random() * 30),
    commentCount: Math.floor(Math.random() * 10),
    collectCount: Math.floor(Math.random() * 15),
    createdAt: `2024-${(Math.floor(Math.random() * 12) + 1).toString().padStart(2, '0')}-${(Math.floor(Math.random() * 28) + 1).toString().padStart(2, '0')}`,
    updatedAt: `2024-${(Math.floor(Math.random() * 12) + 1).toString().padStart(2, '0')}-${(Math.floor(Math.random() * 28) + 1).toString().padStart(2, '0')}`,
    publishedAt: Math.random() > 0.3 ? `2024-${(Math.floor(Math.random() * 12) + 1).toString().padStart(2, '0')}-${(Math.floor(Math.random() * 28) + 1).toString().padStart(2, '0')}` : undefined,
    attachments: [],
    summary: `第${i}篇文章的摘要`
  });
}

// 知识库分类数据
export const categoryData: Category[] = [
  {
    id: 1,
    name: '使用指南',
    description: '系统使用指南和操作手册',
    articleCount: articleData.filter(a => a.category === '使用指南').length,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-30'
  },
  {
    id: 2,
    name: '开发规范',
    description: '开发规范和代码标准',
    articleCount: articleData.filter(a => a.category === '开发规范').length,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-30'
  },
  {
    id: 3,
    name: '设计文档',
    description: '系统设计文档和架构说明',
    articleCount: articleData.filter(a => a.category === '设计文档').length,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-30'
  },
  {
    id: 4,
    name: '技术架构',
    description: '技术架构和实现原理',
    articleCount: articleData.filter(a => a.category === '技术架构').length,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-30'
  },
  {
    id: 5,
    name: '运维指南',
    description: '系统部署和运维管理',
    articleCount: articleData.filter(a => a.category === '运维指南').length,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-30'
  },
  {
    id: 6,
    name: '最佳实践',
    description: '最佳实践和经验分享',
    articleCount: articleData.filter(a => a.category === '最佳实践').length,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-30'
  },
  {
    id: 7,
    name: '故障排查',
    description: '故障排查和解决方案',
    articleCount: articleData.filter(a => a.category === '故障排查').length,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-30'
  }
];

// 文章分类分布数据
export const articleCategoryData = {
  labels: categoryData.map(cat => cat.name),
  datasets: [
    {
      data: categoryData.map(cat => cat.articleCount),
      backgroundColor: [
        '#3B82F6', // 使用指南 - 蓝色
        '#10B981', // 开发规范 - 绿色
        '#F59E0B', // 设计文档 - 黄色
        '#8B5CF6', // 技术架构 - 紫色
        '#EF4444', // 运维指南 - 红色
        '#F97316', // 最佳实践 - 橙色
        '#6B7280'  // 故障排查 - 灰色
      ]
    }
  ]
};

// 文章状态分布数据
export const articleStatusData = {
  labels: ['草稿', '已发布', '已归档'],
  datasets: [
    {
      data: [
        articleData.filter(a => a.status === '草稿').length,
        articleData.filter(a => a.status === '已发布').length,
        articleData.filter(a => a.status === '已归档').length
      ],
      backgroundColor: [
        '#9CA3AF', // 草稿 - 灰色
        '#10B981', // 已发布 - 绿色
        '#6B7280'  // 已归档 - 深灰色
      ]
    }
  ]
};

// 热门文章数据（按浏览量排序）
export const popularArticles = [...articleData]
  .sort((a, b) => b.viewCount - a.viewCount)
  .slice(0, 10);

// 最新文章数据（按创建时间排序）
export const latestArticles = [...articleData]
  .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())
  .slice(0, 10);

// 我的文章数据（模拟当前用户发表的文章）
export const myArticles: Article[] = [
  {
    id: 101,
    title: '我的第一篇技术文章',
    content: '这是我发表的第一篇技术文章，主要介绍了React Hooks的使用...',
    category: '技术架构',
    tags: ['React', 'Hooks', '前端'],
    author: '当前用户',
    status: '已发布',
    viewCount: 156,
    likeCount: 23,
    commentCount: 5,
    collectCount: 8,
    createdAt: '2024-02-01',
    updatedAt: '2024-02-15',
    publishedAt: '2024-02-05',
    attachments: [],
    summary: 'React Hooks的完整使用指南'
  },
  {
    id: 102,
    title: 'DevOps实践分享',
    content: '本文分享了我在DevOps实践中的经验和教训...',
    category: '最佳实践',
    tags: ['DevOps', 'CI/CD', '自动化'],
    author: '当前用户',
    status: '已发布',
    viewCount: 89,
    likeCount: 12,
    commentCount: 3,
    collectCount: 5,
    createdAt: '2024-02-10',
    updatedAt: '2024-02-25',
    publishedAt: '2024-02-15',
    attachments: [],
    summary: 'DevOps实践经验分享'
  },
  {
    id: 103,
    title: '微服务架构设计',
    content: '本文详细介绍了微服务架构的设计原则和实现方案...',
    category: '设计文档',
    tags: ['微服务', '架构', '设计'],
    author: '当前用户',
    status: '草稿',
    viewCount: 34,
    likeCount: 5,
    commentCount: 1,
    collectCount: 2,
    createdAt: '2024-02-20',
    updatedAt: '2024-03-05',
    attachments: [],
    summary: '微服务架构设计文档'
  },
  {
    id: 104,
    title: '前端性能优化指南',
    content: '本文提供了前端性能优化的实用技巧和工具...',
    category: '最佳实践',
    tags: ['前端', '性能', '优化'],
    author: '当前用户',
    status: '已发布',
    viewCount: 67,
    likeCount: 15,
    commentCount: 4,
    collectCount: 6,
    createdAt: '2024-03-01',
    updatedAt: '2024-03-15',
    publishedAt: '2024-03-05',
    attachments: [],
    summary: '前端性能优化实用指南'
  },
  {
    id: 105,
    title: '数据库设计规范',
    content: '本文档规定了数据库设计的规范和最佳实践...',
    category: '开发规范',
    tags: ['数据库', '设计', '规范'],
    author: '当前用户',
    status: '已归档',
    viewCount: 45,
    likeCount: 8,
    commentCount: 2,
    collectCount: 3,
    createdAt: '2024-03-10',
    updatedAt: '2024-03-25',
    publishedAt: '2024-03-15',
    attachments: [],
    summary: '数据库设计规范文档'
  }
];

// 我的收藏数据（模拟当前用户收藏的文章）
export const myCollections: Article[] = [
  {
    id: 1,
    title: 'KZ-DevOps平台使用指南',
    content: '本文档详细介绍了KZ-DevOps平台的使用方法和最佳实践...',
    category: '使用指南',
    tags: ['DevOps', '平台', '使用'],
    author: '张三',
    status: '已发布',
    viewCount: 156,
    likeCount: 23,
    commentCount: 5,
    collectCount: 8,
    createdAt: '2024-01-01',
    updatedAt: '2024-01-15',
    publishedAt: '2024-01-05',
    attachments: [],
    summary: 'KZ-DevOps平台的完整使用指南'
  },
  {
    id: 4,
    title: '权限管理系统技术架构',
    content: '本文档介绍了权限管理系统的技术架构和实现原理...',
    category: '技术架构',
    tags: ['权限', '架构', 'RBAC'],
    author: '赵六',
    status: '已发布',
    viewCount: 67,
    likeCount: 15,
    commentCount: 4,
    collectCount: 6,
    createdAt: '2024-01-15',
    updatedAt: '2024-01-25',
    publishedAt: '2024-01-20',
    attachments: [],
    summary: '权限管理系统的技术架构和实现原理'
  },
  {
    id: 102,
    title: 'DevOps实践分享',
    content: '本文分享了我在DevOps实践中的经验和教训...',
    category: '最佳实践',
    tags: ['DevOps', 'CI/CD', '自动化'],
    author: '当前用户',
    status: '已发布',
    viewCount: 89,
    likeCount: 12,
    commentCount: 3,
    collectCount: 5,
    createdAt: '2024-02-10',
    updatedAt: '2024-02-25',
    publishedAt: '2024-02-15',
    attachments: [],
    summary: 'DevOps实践经验分享'
  },
  {
    id: 104,
    title: '前端性能优化指南',
    content: '本文提供了前端性能优化的实用技巧和工具...',
    category: '最佳实践',
    tags: ['前端', '性能', '优化'],
    author: '当前用户',
    status: '已发布',
    viewCount: 67,
    likeCount: 15,
    commentCount: 4,
    collectCount: 6,
    createdAt: '2024-03-01',
    updatedAt: '2024-03-15',
    publishedAt: '2024-03-05',
    attachments: [],
    summary: '前端性能优化实用指南'
  }
];